home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / 16O75FP (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  2.8 KB  |  74 lines

  1. package com.sun.java.swing.plaf.basic;
  2.  
  3. import com.sun.java.swing.SwingUtilities;
  4. import com.sun.java.swing.preview.filechooser.FileSystemView;
  5. import java.io.File;
  6. import java.util.Vector;
  7.  
  8. class BasicDirectoryModel$LoadFilesThread extends Thread {
  9.    // $FF: synthetic field
  10.    BasicDirectoryModel this$0;
  11.    File currentDirectory;
  12.  
  13.    // $FF: synthetic method
  14.    public BasicDirectoryModel$LoadFilesThread(BasicDirectoryModel this$0, File currentDirectory) {
  15.       super("Basic L&F File Loading Thread");
  16.       this.this$0 = this$0;
  17.       this.currentDirectory = null;
  18.       this.currentDirectory = currentDirectory;
  19.    }
  20.  
  21.    public void run() {
  22.       Vector runnables = new Vector(10);
  23.       FileSystemView fileSystem = BasicDirectoryModel.access$filechooser(this.this$0).getFileSystemView();
  24.       File[] list = fileSystem.getFiles(this.currentDirectory, BasicDirectoryModel.access$filechooser(this.this$0).isFileHidingEnabled());
  25.       Vector acceptsList = new Vector();
  26.  
  27.       for(int i = 0; i < list.length; ++i) {
  28.          if (BasicDirectoryModel.access$filechooser(this.this$0).accept(list[i])) {
  29.             acceptsList.addElement(list[i]);
  30.          }
  31.       }
  32.  
  33.       this.this$0.sort(acceptsList);
  34.       Vector directories = new Vector(10);
  35.       Vector files = new Vector();
  36.  
  37.       for(int i = 0; i < acceptsList.size(); ++i) {
  38.          File f = (File)acceptsList.elementAt(i);
  39.          boolean isTraversable = BasicDirectoryModel.access$filechooser(this.this$0).isTraversable(f);
  40.          if (isTraversable) {
  41.             directories.addElement(f);
  42.          } else if (!isTraversable && BasicDirectoryModel.access$filechooser(this.this$0).isFileSelectionEnabled()) {
  43.             files.addElement(f);
  44.          }
  45.  
  46.          if (directories.size() == 10 || i == acceptsList.size() - 1) {
  47.             BasicDirectoryModel.DoChangeContents runnable = new BasicDirectoryModel.DoChangeContents(this.this$0, directories);
  48.             runnables.addElement(runnable);
  49.             SwingUtilities.invokeLater(runnable);
  50.             directories = new Vector(10);
  51.          }
  52.  
  53.          if (((Thread)this).isInterrupted()) {
  54.             this.cancelRunnables(runnables);
  55.             return;
  56.          }
  57.       }
  58.  
  59.       BasicDirectoryModel.DoChangeContents runnable = new BasicDirectoryModel.DoChangeContents(this.this$0, files);
  60.       runnables.addElement(runnable);
  61.       SwingUtilities.invokeLater(runnable);
  62.       if (((Thread)this).isInterrupted()) {
  63.          this.cancelRunnables(runnables);
  64.       }
  65.    }
  66.  
  67.    public void cancelRunnables(Vector runnables) {
  68.       for(int i = 0; i < runnables.size(); ++i) {
  69.          ((BasicDirectoryModel.DoChangeContents)runnables.elementAt(i)).cancel();
  70.       }
  71.  
  72.    }
  73. }
  74.